﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using ABC_SA_BL;
using ABC_SA_DM;

namespace ABC_SA_WS
{
    /// <summary>
    /// Summary description for wsPaquete
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class wsPaquete : System.Web.Services.WebService
    {

        [WebMethod]
        public List<Paquete> consultaPaquetes()
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            List<Paquete> listaP = new List<Paquete>();

            //listaP contiene la lista de paquetes
            listaP = Paquete_BL.consultaListaPaquetesInfo();

            return listaP;

        }

        [WebMethod]
        public Paquete consultaID(int idPaquete)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //paqueteAMostrar contiene el paquete
            Paquete paqueteAMostrar = Paquete_BL.mostrarPaquete(idPaquete);

            return paqueteAMostrar;
        }

        [WebMethod]
        public string consultaIdConNombre(string nombrePaquete)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //Retorna el id del paquete en cierto nombre
            return Convert.ToString(Paquete_BL.consultaIdConNombre(nombrePaquete));
        }

        [WebMethod]
        public bool agregar(string Nombre, string Descripcion, string fechaIni, string fechaFin, bool estadoActivo, string Precio)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //Inicializacion de variables
            int estadoInt = 1;

            //Captura y convierte a INT el valor del precio
            int intPrecio = Convert.ToInt32(Precio);

            //Se pasa de un estado String a un estadoInt int
            if (estadoActivo)
                estadoInt = 1;
            else
                estadoInt = 0;

            //Se crea el paquete en la capa BL
            return Paquete_BL.crearPaquete(estadoInt, Nombre, fechaIni, fechaFin, Descripcion, intPrecio);

        }

        [WebMethod]
        public bool modificar(string Nombre, string Descripcion, string fechaIni, string fechaFin, bool estadoActivo, string Precio, string idPaquete)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //Inicializacion de variables
            int estadoInt = 1;

            //Captura y convierte a INT el valor del precio y ID
            int intPrecio = Convert.ToInt32(Precio);
            int intPaquete = Convert.ToInt32(idPaquete);

            //Se pasa de un estado String a un estadoInt int
            if (estadoActivo)
                estadoInt = 1;
            else
                estadoInt = 0;

            //Se crea el paquete en la capa BL
            return Paquete_BL.modificarPaquete(estadoInt, Nombre, fechaIni, fechaFin, Descripcion, intPrecio, intPaquete);
        }

        [WebMethod]
        public void eliminar(string idPaquete)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //Captura y convierte a INT el valor del ID
            int intPaquete = Convert.ToInt32(idPaquete);

            //Se envía el idPaquete a la capa BL
            Paquete_BL.eliminarPaquete(intPaquete);
        }

        [WebMethod]
        public bool relacionPaqueteDestino(int idPaquete, List<string> Destinos)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //Se envía el idPaquete y la lista de destinos a la capa BL
            return Paquete_BL.relPaqueteDestino(idPaquete, Destinos);
        }

        [WebMethod]
        public bool relacionPaqueteServicio(int idPaquete, List<string> Servicios)
        {
            //Crea una instancia de la capa BL
            Paquete_BL Paquete_BL = new Paquete_BL();

            //Se envía el idPaquete y la lista de destinos a la capa BL
            return Paquete_BL.relPaqueteServicio(idPaquete, Servicios);
        }

        ////////////////////////////////////////////////////// TEMPORALES

        [WebMethod]
        public List<Destino> ListaDestinos()
        {
            //Solicita la lista de destinos a la capa BL
            Destino_BL Destino_BL = new Destino_BL();
            List<Destino> listaD = Destino_BL.consultaListaDestinos();
            return listaD;
        }

        [WebMethod]
        public List<Servicio> ListaServicios()
        {
            //Solicita la lista de destinos a la capa BL
            Servicios_BL Serv_BL = new Servicios_BL();
            List<Servicio> listaS = Serv_BL.ConsultarServicios();
            return listaS;
        }
    }
}
